Single-cycle Implementation

single-cycle processor

也就是說每一個指令實際上從開始執行到執行結束所需要花的時間是一個cycle

我們會知道要控制整個processor運作
最關鍵的東西就是clock
每一個clock edge來的時候 其實代表一個新的指令開始
而下一個clock edge來的時候代表的是這個執行指令的結束
以及下一個執行指令的開始


我們的clock cycle time絕對不能夠比combinational logic的delay來的小

由此可知 整個processor的運作其實就是從暫存器開始的
因為暫存器把資料讀出來之後 接下來我們就會透過combinational logic去做一些運算
而新的運算結果最後又會再重新寫回到暫存器
上面的這些動作其實都是在一個clock cycle裡面完成的

也因此 雖然看起來我們的design它的開始 它的起點
跟它的終點好像是同一個地方 但事實上由於我們是在一個clock cycle之內完成所有事情
所以實際上整個design並沒有所謂的feedback path
如果真的有feedback path 那這種情況叫做race condition

在實際的電路設計上 我們並不允許這樣的情況發生
因為race condition將會造成我們的傳遞資料有可能會發生錯誤

在single cycle的design裡面 由於我們所有的運算都是在同一個clock cycle裡面完成的

當clock edge來的時候 我們會把暫存器更新
更新的結果是前一個指令它們運算完的結果 在clock edge來的時候更新
而一更新完成之後 馬上的我們就開始執行現在要執行的這個指令

下面這部分回影片看比較清楚

results matching ""

    No results matching ""